package com.example.dbsample.service.business;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.dbsample.model.entity.SysDictData;
import com.example.dbsample.model.http.ResultCode;

import java.util.HashSet;
import java.util.List;

public interface SysDictDataService extends IService<SysDictData> {
    SysDictData querySysDictDataEntity();

    List<SysDictData> querySysDictDataEntityByQueryWrapper(int isDeleted);
    List<SysDictData> querySysDictDataEntityByLambdaQueryWrapper();
    ResultCode<IPage<SysDictData>> querySysDictDataEntityByQueryWrapperPage();

    /**
     * 分页查询 - LambdaQueryWrapper
     * TODO 疑似无用
     * @return
     */
    ResultCode<IPage<SysDictData>> querySysDictDataEntityByLambdaQueryWrapperPage();

    /**
     * 分页查询 - LambdaQueryWrapper
     * TODO 疑似无用
     * @return
     */
    ResultCode<Page<SysDictData>> querySysDictDataEntityByLambdaQueryWrapperPageV2();

    ResultCode<Page<SysDictData>> querySysDictDataEntityByLambdaQueryWrapperPageAll();

    int updateSysDictDataEntityByQueryWrapper();
    SysDictData selectOneSysDictDataEntity();

    Integer batchSave(List<SysDictData> list);
    Integer batchSaveV2(List<SysDictData> list);
    Integer batchUpdate(List<SysDictData> list);
    Integer batchDeleteByIdList(List<Long> idList);
    int countByidList(List<Long> idList);

    List<SysDictData> selectByCondition(SysDictData sysDictData, int offset, int size, List<Integer> versionList);
    List<SysDictData> selectByConditionV2(SysDictData sysDictData, int offset, int size, List<Integer> versionList);
    List<SysDictData> selectNoNull(String labelClass, int offset, int size);

    int deleteByIdList();

    boolean checkExists();

    HashSet<String> findSysDictDataVarialbes(int isDeleted);
}
